function [CDbook]  = RIS_2G6CodeBook( phi_in , theta_in ,phi_out ,theta_out)
%RIS置于xz平面，信号与z轴夹角为俯仰角phi，信号在xy平面的投影与x轴的夹角为方位角theta


%==================================导入数据=======================================%
%%%%%%%%%%
N=16;% y
M=16; % x
%阵元个数，M*N
f=2600000000;%信号频率`
c=300000000;
lambda=c/f;
dx=0.5*lambda;
dz=0.5*lambda;
k = 1;
p = zeros(3,M*N);
% 
% phi_in = 0;   %俯仰角
% theta_in = 0;%预先设定的方向，方位角
% 
% phi_out = 80;   %俯仰角 扫描目标
% theta_out = -35;%方位角 扫描目标

%===============================================================================%
for iii = 0 : M-1+1
    for jjj = 0 : N-1+1
        p(:,k) = [0,jjj*dx,-iii*dz]';
        k = k+1;
    end
end   %阵元的位置
for n=1:17 %去除中间的第9列
    p(:,17*(n-1)+9-(n-1))=[];
    %gapCDbook = [gapCDbook(:,1:17*(n-1)+8-(n-1)) gapCDbook(:,17*(n-1)+10-(n-1):(290-n))];
end
p(:,16*8+1:16*8+16)=[];
%gapCDbook = [gapCDbook(:,1:16*8) gapCDbook(:,16*8+17:272)]; %去除中间的第9行
   
%==================================精确扫描=======================================%
CDbook = zeros(2,M*N);
k2= 2*pi/lambda*[sin(phi_out*pi/180)*cos(theta_out*pi/180)-sin(phi_in*pi/180)*cos(theta_in*pi/180) , sin(phi_out*pi/180)*sin(theta_out*pi/180)-sin(phi_in*pi/180)*sin(theta_in*pi/180) , cos(phi_out*pi/180)-cos(phi_in*pi/180)];
w2= exp(1i*k2*p);
CDbook(1,:) = w2;

%==================================1bit量化=======================================%
for row1 = 1 : M*N
   if( -80 <= 180 * angle(CDbook(1,row1))/pi && 180 * angle(CDbook(1,row1))/pi< 100)
        CDbook(1,row1) = 0;
   else
        CDbook(1,row1) = 1;
   end
end
% %===================================映射=========================================%
mdcbook = zeros(1,M*N);
for i = 1 : 8
    for j = 1 : 16
        mdcbook (1 , 8*(j-1)+i) = CDbook(1, 16*(i-1)+j);
    end
end
for i = 1 : 8
    for j = 1 : 16
        mdcbook (1 , 8*(j-1+16)+i) = CDbook(1, 16*(i-1+8)+j);
    end
end


% %===================================合并为16进制=========================================%
dcdcbook = zeros(1,M*N/4);
for row = 1 : 1
    for column = 1 : M*N/4
        dcdcbook (row , column) = mdcbook(row , 4 * column - 3 ) * 8 + mdcbook(row , 4 * column - 2 ) * 4 + mdcbook(row , 4 * column  - 1 ) * 2 + mdcbook(row , 4 * column  ) * 1;
    end
end

% %===================================输出=========================================%
%合并RIS板的每一列
prCDbook = zeros(1,M*N/8);
for column = 1 : M*N/8
    prCDbook (row , column) = dcdcbook(row , 2 * column  - 1 ) * 16 + dcdcbook(row , 2 * column  ) * 1;
end
dlmwrite('1x256CDbook.csv',prCDbook,'delimiter',',');



    
   
    
